Stata17:DID和DDD模型
Stata:DID和DDD模型
代码合集为
*========================================
* 高级计量经济学
*========================================
* 计量经济学服务中心
*-------------------------------------------------------------------------------
* 参考资料:
* 《初级计量经济学及Stata应用:Stata从入门到进阶》
* 《高级计量经济学及Stata应用:Stata回归分析与应用》
* 《量化社会科学方法》
* 《社会科学因果推断》
* 《面板数据计量分析方法》
* 《时间序列计量分析方法》
* 《高级计量经济学及Eviews应用》
* 《R、Python、Mtalab初高级教程》
* 《空间计量入门:空间计量在Geoda、GeodaSpace中的应用》
* 《零基础|轻松搞定空间计量:空间计量及GeoDa、Stata应用》
* 《空间计量第二部:空间计量及Matlab应用课程》
* 《空间计量第三部:空间计量及Stata应用课程》
* 《空间计量第四部:《空间计量及ArcGis应用课程》
* 《空间计量第五部:空间计量经济学》
* 《空间计量第六部:《空间计量及Python应用》
* 《空间计量第七部:《空间计量及R应用》
* 《空间计量第八部:《高级空间计量经济学》
*-------------------------------------------------------------------------------
webuse hospdd
use "C:\Users\Metrics\Desktop\hospdd.dta"
didregress (satis) (procedure), group(hospital) time(month)
estat trendplots
estat ptrends
estat granger
didregress (satis) (procedure), group(hospital) time(month) vce(hc2)
didregress (satis) (procedure), group(hospital) time(month) aggregate(dlang)
didregress (satis) (procedure), group(hospital) time(month) aggregate(dlang, varying)
didregress (satis) (procedure), group(hospital) time(month) wildbootstrap(rseed(111))
Stata的新didreress和xtdidregress命令适合DID和DDD模型,控制了未观察到的组和时间效应。didregress可以用于重复的横断面数据,其中我们在不同的时间点取样不同的观测单位。xtdidregress用于面板(纵向)数据。这些命令提供了一个统一的框架,以获得适用于各种研究设计的推理。
差异中的差异(DID)提供了一种非实验性的技术,通过比较对照组和治疗组之间的结果差异的与时间差异来估计平均治疗效果(ATET)。因此,称为差异中的差异。这种技术控制了不可观察的时间和群体特征,混淆了治疗对结果的影响。
差异中的差异的差异(DDD)在DID框架中增加了一个控制组,以解释DID可能无法捕捉到的不可观察的组和时间特征交互。它增加了新的控制组的另一个差异。因此,称为差异中的差异的差异(DDD)
治疗效果的例子包括检查药物治疗对血压的影响,外科手术对行动能力的影响,就业培训计划或销售广告活动的影响。
让我们看看它是怎么工作的
一家医疗服务提供者希望研究一项新的住院程序对患者满意度的影响,他们使用了一些医院在新程序实施前后的患者每月数据。卫生服务提供者将使用DID回归分析新入院程序对参与该计划的医院的影响。感兴趣的结果是患者的满意度,治疗变量是程序。我们可以用didreress来拟合这个模型。
webuse hospdd
. didregress (satis) (procedure), group(hospital) time(month)
第一组括号用于指定感兴趣的结果,后面跟着模型中的协变量。在这种情况下,没有协变量。第二组括号用于指定二进制变量,表示所处理的观察结果,procedure。group()和time()选项用于构建模型中包含的组和时间固定效应。group()中指定的变量定义了默认聚类稳健标准误的聚类级别。对于本例,我们在医院级别进行集群。这个命令的结果是
Number of groups and treatment time
Time variable: month
Control: procedure = 0
Treatment: procedure = 1
Control Treatment
Group
hospital 28 18
Time
Minimum 1 4
Maximum 1 4
Difference in differences regression Number of obs = 7,368
Data type: Repeated cross-sectional
(Std. err. adjusted for 46 clusters in hospital)
Robust
stais Coefficient std. err. t P>|t| [95% conf. interval]
ATET
procedure
(New
vs
Old) .8479879 .0321121 26.41 0.000 .7833108 .912665
Note: ATET estimate adjusted for group effects and time effects.
第一个表给出了关于对照组和治疗组以及治疗时间的信息。第一部分告诉我们,28家医院继续使用旧程序,18家医院转向了新程序。第二部分告诉我们,所有实施新程序的医院都是在第四阶段实施的。如果一些医院晚些采取这一政策,第一次治疗的最短时间和最长时间将有所不同。
第二个表给出了估计的ATET, 0.85 (95% CI[0.78,0.91])。与未实施新程序相比,治疗医院的患者满意度提高了0.85点。
该模型作出的一个假设是,在实施新程序之前,对照组和治疗组的satis轨迹是平行的。这些轨迹的可视化检查可以通过绘制两组结果随时间的平均值或通过可视化线性趋势模型的结果来获得。我们可以使用. estat trendplots 来执行这两种诊断检查。
. estat trendplots
在政策实施之前,控制和治疗医院是平行的。我们可以使用estat ptrends的平行趋势检验进一步评估这个假设。
estat ptrends
estat ptrends
Parallel-trends test (pretreatment time period)
H0: Linear trends are parallel
F(1, 45) = 0.55
Prob > F = 0.4615
我们没有足够的证据来拒绝平行趋势的零假设。这个检验和图形分析支持平行趋势假设。
我们可能想要进行的另一个测试是,看看在治疗预期中,对照组或治疗组是否会改变他们的行为。这是用使用estat granger的格兰杰因果关系检验来评估的
. estat granger
Granger causality test
H0: No effect in anticipation of treatment
F(2, 45) = 0.33
Prob > F = 0.7239
我们没有足够的证据来拒绝治疗前没有行为改变的无效假设。结合我们之前的诊断,这些结果表明我们应该相信我们的ATET估计的有效性。
在这个例子中,我们有足够多的医院(46家)来对我们的治疗效果做出可靠的推断。然而,如果我们只有15家医院的数据,我们可能会考虑其他方法。
为了使用Bell和McCaffrey(2002)的自由度调整偏差校正标准误差,我们可以添加vce(hc2)选项。
. didregress (satis) (procedure), group(hospital) time(month) vce(hc2)
为了使用Donald和Lang(2007)提出的聚合方法,我们可以添加aggregate(dlang)选项。
. didregress (satis) (procedure), group(hospital) time(month) aggregate(dlang)
我们可以添加可变选项,如果我们想让一些系数在不同组之间变化。
. didregress (satis) (procedure), group(hospital) time(month) aggregate(dlang, varying)
我们还可以使用野蛮自举抽样引导来获得p值和置信区间。与所有bootstrap类型的方法一样,我们需要设置种子以使结果可复制。
. didregress (satis) (procedure), group(hospital) time(month) wildbootstrap(rseed(111))
computing 1000 replications
Finding p-value
.................................................. 50%
................................................. 100%
Confidence interval lower bound
...
Confidence interval upper bound
...
Number of groups and treatment time
Time variable: month
Control: procedure = 0
Treatment: procedure = 1
Control Treatment
Group
hospital 7 8
Time
Minimum 1 4
Maximum 1 4
DID with wild-cluster bootstrap inference Number of obs = 2,192
No. of clusters = 15
Replications = 1,000
Data type: Repeated cross-sectional
Error weight: rademacher
stais Coefficient t P>|t| [95% conf. interval]
ATET
procedure
(New vs Old) .860162 19.72 0.000 .7714875 .9587552
Note: ATET estimate adjusted for group effects and time effects.```
上面的置信区间和p值为组数较少的情况提供了可靠的推断。这些结果可以用与我们原始模型相同的方式来解释。